.. _example-phreeqc-manual-12: 12 - Advective Diffusive Flux ============================= Heat moving through a column alongside the solutes, and a check that the numerical method gets both right. Where :ref:`example-phreeqc-manual-11` verified advection against an analytical solution, this one does the same for **diffusion**, adds **temperature** as a transported quantity, and then demonstrates that the method converges at the rate it claims to. The experiment -------------- .. raw:: html :file: study_12 - Advective Diffusive Flux.html A column of dilute KCl at 25 °C, in equilibrium with a cation exchanger. A KNO₃ solution advects in and brings it to 0 °C. Then sodium chloride at 24 °C is allowed to diffuse in from **both ends**, with no heat lost through the walls -- a constant-concentration boundary at one end, a closed boundary at the other. Two boundary conditions in one column is deliberate: they are the two that occur in practice, and they produce visibly different profiles. Heat is transported like a solute, and retarded ------------------------------------------------ Temperature moves by the same advection-diffusion equation as a dissolved species, so PHREEQC transports it the same way. But heat is also stored in the solid, not only in the water, and that gives it a **retardation factor** exactly as sorption does for a solute. Here the numbers line up neatly: chloride is unretarded, R = 1.0; sodium is retarded by the exchanger with R = 3.0; and the temperature is retarded by the heat capacity of the solid, also R = 3.0. So sodium and temperature should move together, for entirely unrelated physical reasons. That coincidence is what the figure is arranged to show. The result ---------- .. figure:: DiffusionofSolutesandHeat.svg :alt: Sodium, chloride and temperature profiles along the column with analytical solutions :align: center Profiles along the column, with the analytical solutions for chloride and sodium drawn over the computed ones. **Chloride** has diffused furthest -- nothing holds it. **Sodium** and **temperature** lag behind it by the same amount and lie on top of each other, which is the R = 3.0 they share. The asymmetry between the two ends of the column is the two boundary conditions. The computed profiles sit on the analytical curves. That is the result: the transport is right before any chemistry is asked of it. Second-order convergence ------------------------ The example then repeats the calculation with three times as many cells. The error against the analytical solution falls by about an order of magnitude, which is what second-order accuracy predicts: refine by three, and the error should fall by roughly nine. This is a convergence test, and it is a different and stronger check than agreeing with an analytical solution once. Agreement at one discretisation can be luck. Error falling at the predicted rate as the grid is refined says the method is doing what it claims. For practical work the implication is the one worth carrying away: a reactive transport result is only meaningful if it is insensitive to the cell size, and the way to find out is to halve the cells and re-run. Source ------ * Parkhurst, D. L. and Appelo, C. A. J. (2013). *Description of input and examples for PHREEQC version 3.* U.S. Geological Survey Techniques and Methods, book 6, chapter A43. This is Example 12 of that manual, including the analytical solutions.